package com.management.service;

import com.management.po.PurchaseForm;
import com.management.vo.PurchaseFormVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @category: 采购表业务逻辑类
 * @author: cwsheng
 * @version: 1.0
 * @date: 2021/10/30 23:28
 */
public interface PurchaseFormService {
    /**
     * 查询全部
     * @return 订购单集合对象
     */
    public List<PurchaseFormVO> findAll();

    /**
     * 根据公司编号查询
     * @param companyId 公司编号
     * @return 订购单集合对象
     */
    public List<PurchaseFormVO> findByCompanyId(int companyId);

    /**
     * 根据公司编号，职员编号查找
     * @param companyId 公司编号
     * @param userId 职员编号
     * @return 订购单集合对象
     */
    public List<PurchaseFormVO> findByCompanyAndUserId(@Param("companyId") int companyId, @Param("userId") int userId);

    /**
     * 根据物品编号查询
     * @param materialsId 物品编号查询
     * @return 订购单集合对象
     */
    public List<PurchaseFormVO> findByMaterialsId(int materialsId);

    /**
     * 根据公司编号，表状态编号查询
     * @param companyId
     * @param formStatsId
     * @return
     */
    public List<PurchaseFormVO> findByCompanyAndFormStatsId(@Param("companyId") int companyId,@Param("formStatsId") int formStatsId);

    /**
     * 根据采购单编号查询
     * @param purchaseFormId 采购单编号
     * @return 采购单对象
     */
    public PurchaseFormVO findBy(String purchaseFormId);

    /**
     * 新增
     * @param purchaseForm 采购表对象
     * @return 受影响行数
     */
    public boolean add(PurchaseForm purchaseForm);

    /**
     * 更新采购表
     * @param purchaseForm 采购表对象
     * @return 受影响行数
     */
    public boolean update(PurchaseForm purchaseForm);
    public boolean delete(String  purchaseFormId);
}
